The present invention relates to electronic data processing, and more particularly concerns the real-time simulation of skill-based activities such as air-to-air combat.
Designing a real-time air-combat simulator is full of challenges. One of them is developing a compelling artificial intelligence (AI) for allowing the computer to control the actions of simulated aircraft and other entities that try to shoot the human player out of the sky. (For brevity, all such entities will be referred to as xe2x80x9cAI units.xe2x80x9d)
Real-time simulators demand the utmost from a computer. There is never enough time to perform all the calculations required to simulate the motions of the player""s aircraft, other aircraft visible to the player, and complex terrain, and to render their images on a display screen. Where compromises are necessary, conventional simulators tend to skimp on the realism of the AI units. The purpose of the AI units is to mimic human-like behavior as closely as possible. Playing present air-combat products quickly reveals weaknesses in the behavior of simulated enemy pilots. They feel computerish. They perform in ways which are both better and worse than human pilots. Their incredible ability to react to aircraft dead astern of them and to maneuver instantaneously is frustrating to players. On the other hand, human players quickly learn to take advantage of their simplistic tactics, turning the game into a turkey shoot.
Conventional AI-unit simulators lack realism in the area of situational awareness, the ability to see and thus react to other units in the simulated region. The common expedient in air combat is to maintain a list of the three-dimensional position of every aircraft in the combat zone, and to make the full list available to every AI unit for target selection, attack planning, and evasive maneuvers. This approach lends a disconcerting omniscience to their ability to track large numbers of other aircraft in furballs, where many aircraft engage each other from various attitudes. Real pilots can see any aircraft in a cone ahead of them, but awareness drops off for aircraft approaching from the flank or from above and below. Bogeys at six o""clock should be as invisible to AI units as they are to human pilots. Another aspect of situational awareness concerns persistence. Even though another aircraft is less visible out of the forward cone, human pilots remain aware of other aircraft that drop astern from a sector of higher visibility, and continue to react to their presence for some period of time. Further, it is characteristic of human pilots to fixate upon a targeted aircraft, paying more attention to it and paying less attention to other aircraft. It should be easier for the human player to jump a simulated enemy unit when it is pursuing another target. It should be harder for the human player to duck a pursuing enemy AI unit.
Target selection is also a shortcoming of conventional simulators. When many targets are available in a furball, present-day AI units employ crude or even random factors for designating one of them to engage. And, once locked on to a specific target, contemporary AI units doggedly pursue it, refusing to acquire a more favorable target. This defect often allows human players to consider otherwise suicidal tactics to approach an enemy unit within point-blank firing range.
A shortcoming in the basic design of simulators for many-unit simulators is to enhance the realism of the player-controlled aircraft or other unit at the expense of the computer-controlled units. For example, each AI unit might be allocated the same fixed amount of computer resources, or all AI units given exactly the same skill level. Where many computer-controlled units are attempted, it is easy to justify skimping on the physics of their simulation. Whereas the player""s unit is simulated with a full physics engine that mimics many details of the unit""s actual response to their control inputs, the AI units are guided through simpler simulation techniques, usually through more or less direct control of their flight paths. The player""s unit gets the full treatment; the AI units do not, and suffer for it.
Enhancing the realism of computer-controlled AI units is not straightforward. The first problem is, of course, is to design their behaviors to be more realistic, as discussed above. Then, given the, computation-intensive nature of real-time simulation, the next problem is to implement those behaviors more efficiently. Simulators operate in cycles, updating the current state of objects in the system during each cycle to produce a new state for the next cycle. Conventionally, the parameters of the AI units are recalculated in a think interval that remains constant for all parameters and that is the same for all units. In a complex simulation involving increased computation for many units, each of which can be in different circumstances, this simple scheme wastes valuable time and resources. Slowly changing parameters are updated more often than necessary, while units in the thick of the action react sluggishly for lack of timely updates.
Realism of AI units suffers further from crude simulation of their maneuvers. Newer products in this genre employ sophisticated physics engines for recreating the actual characteristics of the player""s aircraft. Yet the computer-controlled units remain directed by simpler commands to proceed in a certain direction at a certain speed. This technique results in jerky, mechanical actions, and in physically impossible maneuvers. Vectoring routines can include artificial constraints such as limits on turn rates, but the results are often less than believable. Also, the direct control used in conventional simulators allows little in the way of modeling different enemy aircraft. Although the user of a player-controlled simulator such as Microsoft Flight Simulator(copyright) can choose among a wide variety of aircraft types, combat-type simulators are much more restricted. The computer-controlled AI units are either fixed or restricted to a few types having unrealistic behaviors.
Unrealistic actions are most noticeable during extreme maneuvers of an AI unit. For example, a computer-generated tactical command for an aircraft to descend sharply while in a bank may produce a totally undesired maneuver, directing the craft in a wholly different direction than that intended. Even in the absence of guidance commands, maintaining a proper pitch attitude during turning and banking is difficult. Another aspect that is generated unrealistically in current simulators concerns the way in which an AI unit turns to follow a target. Computers single-mindedly point an AI aircraft at its target as quickly as possible and follow it as closely as possible. Even relatively inexperienced players see that technique as artificial.
The above discussion focuses upon air-combat simulators as an example of the class of simulators that employ one or more units or entities controlled by the computer, as well as a simulated unit controlled by a player or other user. This genre includes other competitive scenarios such as BEM (bug-eyed monster) adventure games and NASCAR races. There is little difference between simulators for entertainment and those for skill training such as driver education. All but the simplest simulation applications have less realism than their designers wish for, and the need for enhanced realism for the computer-controlled AI units is as intense as that for the player-controlled unit.
The present invention provides systems and methods for enhancing the realism of the computer-controlled AI units of a multi-unit simulator for competitive gaming and other applications. That is, the computer-controlled units behave more like human-controlled units would in the same environment, and their simulated units perform more like the vehicles or other physical units that they model.
An individual situational awareness concept for each AI unit replaces the global awareness concept of conventional simulators. Rather than allowing all AI units to observe all other units in the simulated environment all the time, the invention maintains separate lists or records for each AI unit indicating which other units that unit can for each AI unit can react to. An awareness filter maintains the list for each unit by periodically computing relationships between that unit and the other units, and adds or drops the other units based at least partially upon the computed relationships. Additional optional factors for possible inclusion on the awareness list of a unit list are the history of past relationships of the other units, and the activity in which the subject unit itself is engaged. Situational awareness removes the apparent omniscience of the AI units that makes them appear less realistic.
In order to increase the realism of situational tactics employed by AI units, another aspect of the invention employs the computed relationships among the units in the simulated environment to select a tactical course of action, for example selecting a target to pursue. The computer periodically generates a score or other evaluation for the other units in the area from the computed relationships, then selects a course of action, such as designating one of the units as a target, based upon the situational scores of those units. To avoid becoming fixated upon a single objective, reselection of a tactical objective can occur in response to periodic recalculation of the relationships and the scores. Further, the AI units can adopt individual strategies for pursuing a target or other goal, and can change the strategies short of their goals in response to changing tactical situations.
The above and other realism improvements require ways to perform large numbers of calculations within the available cycle times of a simulator. Evaluating the awareness, targeting, and strategy relationships is especially burdensome. However, some of the more numerically intensive calculations can be precomputed and cached, rather than being recalculated each time they are needed during a cycle. In addition, the time interval between successive calculations of the simulation for certain aspects of the computer-controlled AI units can be individually varied for different ones of the AI units. A situational complexity measure is produced for the environment of each unit, and the calculation cycle or xe2x80x9cthink ratexe2x80x9d for certain parameters is varied in response to the complexity of that particular unit at that particular moment. Accordingly, an AI unit that is closing in to fire at a target, for example, recalculates its control outputs more frequently than when it is farther away, and more frequently than another AI unit that is farther away from the action.
Another aspect of the invention simulates the computer-controlled AI units from a physics engine in the same manner that the human user""s unit is simulated. Rather than employing the guidance outputs of the AI control module directly to set the position, speed, and other parameters of an image of an AI unit, a translator converts the AI operator""s guidance outputs for particular desired parameters into control outputs that are fed into a physics engine of the same general type as that used to simulate the player""s unit. In this manner, the AI units follow exactly the same physical laws as the player""s unit. Optionally, the simulator is the same one used for the player""s unit, and different kinds of AI units can be simulated merely by plugging different physical models into the simulator at different times during the simulation cycles.
Actual physical modeling of the AI units, however, further increases the computational load on the simulator to derive realistic control outputs from the simpler guidance parameters. Yet another facet of the invention employs a relatively simple method for translating the guidance parameters, but modifies these methods when an AI unit performs extreme maneuvers. One method of this kind is to modify particular control output settings during certain types of maneuver, that is, while certain states or control settings of the AI unit exist. Another method is to add one or more control inputs to the simulator beyond those available for the players to control their units. The guidance controller then engages these controls in certain tactical situations. In this way, applying more complex control methods only part of the time eases the computational load while enhancing realism.